DXL unable to restore an archive

I have some archived modules, ending in .dma.
If I manually restore them, the restore process works fine.

If I attempt to do this with a DXL script, then I get this message for canRestoreServerArchive()
"No permission to restore a server archive"
getModuleDetails() tells me that the archive is valid.

See this thread "How to integrate Client folders with DOORS folders question" for background information

code

bool bServer = canRestoreServerArchive()
print "Permission to restore on Server -> " bServer "\n"
string message = getModuleDetails(strArchive, modName, projName, archiveDate)

code

Any suggestions on how or why DXL differs from a manual restore?

Thank you
Gedinfo - Mon Apr 30 16:46:34 EDT 2012

Re: DXL unable to restore an archive
llandale - Tue May 01 10:54:35 EDT 2012

Of course not well documented, but a "serverArchive" is a *.dma that is stored INSIDE the database hierarchy on the doors server. You cannot see them with Windows Explorer on your client.

Using:
  • restore(ArchiveData,string,true)
means you are trying to restore a serverArchive, which is not the case.

-Louie

Re: DXL unable to restore an archive
Gedinfo - Tue May 01 12:15:29 EDT 2012

Thank you Louie,

I can successfully restore now.

My issue was that I was including the full path for the new module name, instead of just the module name.

I also removed the server archive parameter.

Re: DXL unable to restore an archive
SteffenK. - Wed Mar 15 04:09:18 EDT 2017

Gedinfo - Tue May 01 12:15:29 EDT 2012
Thank you Louie,

I can successfully restore now.

My issue was that I was including the full path for the new module name, instead of just the module name.

I also removed the server archive parameter.

Hi Gedinfo,

currently I am having quite a battle with the restore function...
Maybe you can help me (though it have 5 years since you found your solution :) )

 

I am just trying to use the restore function like it is given in the user manual:

string message = restore "d:\\temp\\car.dma"
if (!null message) {
ack message
halt
}

 

But, no matter how I try to enter the path to my local .dma file in c:\temp (e.g. with \, \\, / or //) I always get

-E- DXL: <Line:1> incorrect arguments for function (restore)
-E- DXL: <Line:1> incorrectly concatenated tokens

 

How exactly did you use the restore function? Did it work for you for locally stored dma-files?

 

regards

steffen

Re: DXL unable to restore an archive
SteffenK. - Wed Mar 15 05:15:46 EDT 2017

My problem is solved:
Easy resolution: The example for the restoreModule function, that I wanted to use, is simply wrong!

 

The function syntax is: string restoreModule(string fileName[,string moduleName], [bool serverArchive])

but the example looks like this: string message = restore "d:\\temp\\car.dma"

 

 

So, if I would have looked twice, I could have found our earlier.

But who expects this kind of typo in a IBM user reference?

 

By the way: This type applies for more functions, not only the restoreModule...

 

Cheers

 

Re: DXL unable to restore an archive
Mike.Scharnow - Wed Mar 15 05:21:14 EDT 2017

SteffenK. - Wed Mar 15 04:09:18 EDT 2017

Hi Gedinfo,

currently I am having quite a battle with the restore function...
Maybe you can help me (though it have 5 years since you found your solution :) )

 

I am just trying to use the restore function like it is given in the user manual:

string message = restore "d:\\temp\\car.dma"
if (!null message) {
ack message
halt
}

 

But, no matter how I try to enter the path to my local .dma file in c:\temp (e.g. with \, \\, / or //) I always get

-E- DXL: <Line:1> incorrect arguments for function (restore)
-E- DXL: <Line:1> incorrectly concatenated tokens

 

How exactly did you use the restore function? Did it work for you for locally stored dma-files?

 

regards

steffen

Hi Steffen,

That seems to be a bug in the documentation. 

The DXL guide delivered with 9.6.1, chapter 36 "Archive and restore", says e.g. 

restore(archive)

Declaration
string restore(ArchiveData archive [,string archiveName], [bool serverArchive])

Operation
Restores archive to archiveName. If the operation succeeds, returns a null string; otherwise, returns an error
message.

I see that the example you posted is a part of  

string restoreModule(string fileName [,string moduleName], [bool serverArchive])

Try restoreModule instead of restore or try restore with the correct parameters.

 

Regards,
Mike

 

Oops: too late...

Re: DXL unable to restore an archive
SteffenK. - Wed Mar 15 05:24:43 EDT 2017

Hi Mike,

 

thanks for the answer Grin

I found the bug in the user reference already Crying

Re: DXL unable to restore an archive
Mike.Scharnow - Wed Mar 15 05:54:52 EDT 2017

SteffenK. - Wed Mar 15 05:15:46 EDT 2017

My problem is solved:
Easy resolution: The example for the restoreModule function, that I wanted to use, is simply wrong!

 

The function syntax is: string restoreModule(string fileName[,string moduleName], [bool serverArchive])

but the example looks like this: string message = restore "d:\\temp\\car.dma"

 

 

So, if I would have looked twice, I could have found our earlier.

But who expects this kind of typo in a IBM user reference?

 

By the way: This type applies for more functions, not only the restoreModule...

 

Cheers

 

you mentioned some more functions where you noticed problems. You could open an SR at IBM telling them about the documentation bugs. The Manual has already been improved over the last xxx years, but it's still not perfect...

Re: DXL unable to restore an archive
SteffenK. - Wed Mar 15 06:06:44 EDT 2017

Mike.Scharnow - Wed Mar 15 05:54:52 EDT 2017

you mentioned some more functions where you noticed problems. You could open an SR at IBM telling them about the documentation bugs. The Manual has already been improved over the last xxx years, but it's still not perfect...

Hi,

how can I open an SR?
Yesterday, when I tried to somehow get in contact with the IBM support, I got totally stuck in registrations processes for several services etc....

Re: DXL unable to restore an archive
Mike.Scharnow - Wed Mar 15 07:01:38 EDT 2017

SteffenK. - Wed Mar 15 06:06:44 EDT 2017

Hi,

how can I open an SR?
Yesterday, when I tried to somehow get in contact with the IBM support, I got totally stuck in registrations processes for several services etc....

welcome to the club.

As far as I know, you either need an IBM ID and your account must be connected to your company's employee list in the IBM database to open SRs via the web site.

Or you could just call them: According to a mail from IBM I got last week, you can get in touch with IBMserv Germany at +49 0800 5 116399

Things will go way faster if you get the IBM customer number of your company beforehand.